<?php
// +----------------------------------------------------------------------
// | Author: July
// +----------------------------------------------------------------------
// | 创建时间: 2023-12-27 20:39:42
// +----------------------------------------------------------------------
// | 管理员相关操作
// +----------------------------------------------------------------------

namespace july\julyadmin\common\logic;

class AdminLogic
{

    /**
     * 对用户的密码进行加密
     * @Author   July
     * @DateTime 2024-01-13T20:07:39+0800
     * @param string $password
     * @param string $encrypt //传入加密串，在修改密码时做认证
     * @return array password
     */
    public static function password($password, $encrypt = '')
    {
        $pwd             = array();
        $pwd['encrypt']  = $encrypt ? $encrypt : self::generatePassword(6);
        $pwd['password'] = md5(md5(trim($password)) . $pwd['encrypt']);
        return $encrypt ? $pwd['password'] : $pwd;
    }

    /**
     * 获取随机字符串密码
     * @Author   July
     * @DateTime 2024-01-13T20:08:11+0800
     * @param    integer                  $length 字符串长度
     * @return   string                           返回生成的随机字符串密码
     */
    public static function generatePassword($length = 6)
    {
        // 密码字符集，可任意添加你需要的字符
        $chars    = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
        $password = '';
        for ($i = 0; $i < $length; $i++) {
            // 这里提供两种字符获取方式
            // 第一种是使用 substr 截取$chars中的任意一位字符；
            // 第二种是取字符数组 $chars 的任意元素
            // $password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1);
            $password .= $chars[mt_rand(0, strlen($chars) - 1)];
        }
        return $password;
    }
}
